package com.gujiangbo.oom;

/**
 * @Author: gujiangbo.co
 * @Contact: 646832012@qq.com
 * @Date: 2022/3/12 23:54
 * @Version: 1.0
 * @Description: 导致原因：
 * 1、你的应用创建太多线程，一个应用进程创建多个线程，超过系统承载极限。
 * 2、你的服务器不允许你的应用创建太多线程，linux系统默认单个进程创建的线程数量1024个，你的应用超过这个数量就会
 * 报错：java.lang.OutOfMemoryError: unable to create new native thread
 * <p>
 * 解决办法：
 * 1、想办法降低你的应用程序创建爱你线程的数量，分析应用是否真的需要创建那么多的线程，如果不是，改代码将线程数量降到最低
 * 2、对于有的应用，确实需要创建很多线程，远超Linux系统的默认值1024，可以通过修改Linux服务器配置，扩大限制
 */
public class JavaUnableCreateNewThread {

    public static void main(String[] args) {

        for (int i = 0; ; i++) {
            System.out.println("******* i=" + i);
            new Thread(() -> {
                try {
                    Thread.sleep(Integer.MAX_VALUE);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }).start();
        }

    }
}
